package com.nuanshui.heatedloan.credit.facade.third.party;

import com.nuanshui.heatedloan.credit.request.*;
import com.nuanshui.heatedloan.credit.response.*;

/**
 * Created by wangxw on 2017/7/21.
 */
public interface RiskManagerInteractionService{
    /***
     * 调用风控计算额度接口
     * @param calculationLimitRequest
     * @return
     */
    CalculationLimitResponse calculationLimit(CalculationLimitRequest calculationLimitRequest);


    /***
     * 调用提交订单接口
     */

    boolean submitOrder(CalculationLimitRequest calculationLimitRequest);


    /***
     * 提额接口
     * @param raiseLimitRequest
     */
    void raiseLimit(RaiseLimitRequest raiseLimitRequest);

    /***
     * 四要素验证
     * @param bankCardRequest
     * @return
     */
    RiskResponse fourFactorVerification(BankCardRequest bankCardRequest);

    /***
     * 芝麻分数查询接口
     * @param selectSesameRequest
     * @return
     */
    public SelectSesameResponse selectSesameInfo(SelectSesameRequest selectSesameRequest);


    /***
     * 贷款申请通过回掉接口
     * @param applyLoanResponse
     */
    void  callBackSubmitOrder(ApplyLoanResponse applyLoanResponse);

    /***
     * 提额回掉接口
     * @param raiseLimitResponse
     */
    void callBackRaiseLimit(RaiseLimitResponse raiseLimitResponse);


    /***
     * 芝麻认证
     * @param sesameAuthRequest
     * @return
     */
    SesameAuthResponse sesameAuth(SesameAuthRequest sesameAuthRequest);

    /***
     * 芝麻认证回调
     * @param riskResponse
     */
    void callBackSesame(RiskResponse riskResponse);

    /***
     * 获取某个订单的打点日志
     * @param selectOperationLogRequest
     * @return
     */
    public SelectOperationLogResponse getOperationLog(SelectOperationLogRequest selectOperationLogRequest);

    /***
     * 查询某个订单的注记信息
     * @param selectLetterTrialNoteRequest
     * @return
     */
    public SelectLetterTrialNoteResponse getLetterTrialNote(SelectLetterTrialNoteRequest selectLetterTrialNoteRequest);

    /***
     * 查找历史结案清单
     * @param closedDetailedRequest
     * @return
     */
    public ClosedDetailedResponse getHistoryCreditAudit(ClosedDetailedRequest closedDetailedRequest);

    /***
     * 保存操作日志
     * @param operationLogRequest
     * @return
     */
    public RiskBaseResponse saveOperationLog(OperationLogRequest operationLogRequest);

    /***
     * 新增注记信息
     * @param letterTrialNoteRequest
     * @return
     */
    public RiskBaseResponse saveTrialNote(LetterTrialNoteRequest letterTrialNoteRequest);

    /***
     * 查找是否黑名单接口
     * @param isWhiteRequest
     * @return
     */
    public IsWhiteResponse isWhiteList(IsWhiteRequest isWhiteRequest);

    /***
     * 计算额度回调
     * @param calculationLimitResponse
     */
    public void callBackCalculationLimit(CalculationLimitResponse calculationLimitResponse);

    /***
     * 查询逾期的信息
     * @param riskSelectRequest
     * @param riskSelectResponse
     */
    public void selectOverdueInfo(RiskSelectRequest riskSelectRequest,RiskSelectResponse riskSelectResponse);

}
